home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / lang / SmallEiffel.lha / SmallEiffel / bin_c / compile_to_jvm22.c < prev    next >
C/C++ Source or Header  |  1998-12-22  |  40KB  |  1,942 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_jvm.h"
  9.  
  10.  
  11. T0* r277jvm_root_class(void){
  12. if(fBC12jvm_root_class==0){
  13. fBC12jvm_root_class=1;
  14. {T7*n=malloc(sizeof(*n));
  15. *n=M7;
  16. r7make(n,12);
  17. oBC12jvm_root_class=(T0*)n;
  18. }
  19. r7copy(((T7*)oBC12jvm_root_class),((T24*)(oBC12jvm))->_output_name/*0*/);
  20. r7extend(((T7*)oBC12jvm_root_class),'\57');
  21. r7append(((T7*)oBC12jvm_root_class),((T0*)ms13_1732));
  22. }
  23. return oBC12jvm_root_class;}
  24. /*No:TYPE_CLASS.start_position*/
  25.  
  26.  
  27. void r277jvm_initialize_local(T277* C,T2 a1){
  28. /*[IF*/
  29. if(r277is_reference(C)){
  30. /*[IRF3.4opcode_aconst_null*/r28opcode((T28*)(oBC12code_attribute),1,1);
  31. /*]*/
  32. }
  33. else{
  34. r23jvm_expanded_push_default((T23*)(r277run_class(C)));
  35. }
  36. /*FI]*/
  37. /*[IRF3.6jvm_write_local*/{T2 b1=a1;
  38. r28opcode_astore((T28*)(oBC12code_attribute),b1);
  39. }/*]*/
  40. }
  41.  
  42.  
  43. void r277used_as_reference(T277* C){
  44. /*[IF*/
  45. if(r277is_expanded(C)){
  46. r23used_as_reference((T23*)(r277run_class(C)));
  47. }
  48. /*FI]*/
  49. }
  50. /*No:TYPE_CLASS.is_user_expanded*/
  51.  
  52.  
  53. T2 r277id(T277* C){
  54. T2 R=0;
  55. R=((T63*)(r277base_class(C)))->_id/*0*/;
  56. return R;
  57. }
  58. /*No:TYPE_CLASS.is_pointer*/
  59. /*No:TYPE_CLASS.jvm_check_class_invariant*/
  60.  
  61.  
  62. T0* r277to_runnable(T277* C,T0* a1){
  63. T0* R=NULL;
  64. T0* _bc=NULL;
  65. _bc=r70base_class((T70*)((C)->_base_class_name/*4*/));
  66. /*[IF*/
  67. if(((((T63*)_bc))->_is_expanded/*20*/)&&(!(r66fast_has((T66*)(oBC277check_memory),_bc)))){
  68. r66add_last((T66*)(oBC277check_memory),_bc);
  69. r23set_at_run_time((T23*)(r277run_class(C)));
  70. }
  71. /*FI]*/
  72. /*[IF*/
  73. if(((((T63*)_bc))->_formal_generic_list/*28*/)!=((void*)(NULL))){
  74. r21add_position(((T96*)((((T63*)_bc))->_formal_generic_list/*28*/))->_start_position/*0*/);
  75. r21add_type((T0*)C,((T0*)ms277_50344));
  76. r21print_as_fatal_error((T21*)(oBC12eh));
  77. }
  78. /*FI]*/
  79. R=(T0*)C;
  80. return R;
  81. }
  82.  
  83.  
  84. T0* r277run_class(T277* C){
  85. T0* R=NULL;
  86. R=r22run_class((T0*)C);
  87. return R;
  88. }
  89.  
  90.  
  91. void r277standard_jvm_check_class_invariant(T277* C){
  92. /*[IF*/
  93. if(r76invariant_check((T76*)(oBC12run_control))){
  94. r23jvm_check_class_invariant((T23*)(r277run_class(C)));
  95. }
  96. /*FI]*/
  97. }
  98. /*No:TYPE_CLASS.is_like_current*/
  99. /*No:TYPE_CLASS.is_bit*/
  100. /*No:TYPE_CLASS.jvm_write_local*/
  101.  
  102.  
  103. T0* r277smallest_ancestor(T277* C,T0* a1){
  104. T0* R=NULL;
  105. T0* _bc=NULL;
  106. T0* _rto_bc=NULL;
  107. T0* _pl2=NULL;
  108. T0* _pl1=NULL;
  109. T0* _rto=NULL;
  110. _rto=X52run_type(a1);
  111. /*[IF*/
  112. if(X52is_none(a1)){
  113. R=(T0*)C;
  114. }
  115.  else if(X52is_any(_rto)){
  116. R=_rto;
  117. }
  118. else{
  119. _rto_bc=X52base_class(_rto);
  120. _bc=r277base_class(C);
  121. /*[IF*/
  122. if((_rto_bc)==((void*)(_bc))){
  123. R=(T0*)C;
  124. }
  125.  else if(r63is_subclass_of(((T63*)_rto_bc),_bc)){
  126. R=(T0*)C;
  127. }
  128.  else if(r63is_subclass_of(((T63*)_bc),_rto_bc)){
  129. R=_rto;
  130. }
  131.  else if((X52is_expanded(_rto))&&(!(r277is_expanded(C)))){
  132. R=X52smallest_ancestor(_rto,(T0*)C);
  133. }
  134. else{
  135. _pl1=(((T63*)_bc))->_parent_list/*40*/;
  136. _pl2=(((T63*)_rto_bc))->_parent_list/*40*/;
  137. /*[IF*/
  138. if(((_pl1)==((void*)(NULL)))||((_pl2)==((void*)(NULL)))){
  139. R=r277type_any();
  140. }
  141.  else if((/*(IRF4.6count*/(((T83*)((((T81*)_pl2))->_list/*12*/)))->_upper/*8*//*)*/)==(1)){
  142. R=X52smallest_ancestor(((T82*)(/*(IRF4.6super*/r83first(((T83*)((((T81*)_pl2))->_list/*12*/)))/*)*/))->_type/*4*/,(T0*)C);
  143. }
  144.  else if((/*(IRF4.6count*/(((T83*)((((T81*)_pl1))->_list/*12*/)))->_upper/*8*//*)*/)==(1)){
  145. R=X52smallest_ancestor(((T82*)(/*(IRF4.6super*/r83first(((T83*)((((T81*)_pl1))->_list/*12*/)))/*)*/))->_type/*4*/,a1);
  146. }
  147. else{
  148. R=r81smallest_ancestor(((T81*)_pl1),(T0*)C);
  149. R=X52smallest_ancestor(R,a1);
  150. }
  151. /*FI]*/
  152. }
  153. /*FI]*/
  154. }
  155. /*FI]*/
  156. return R;
  157. }
  158. /*No:TYPE_CLASS.run_time_mark*/
  159.  
  160.  
  161. T6 r277is_expanded(T277* C){
  162. T6 R=0;
  163. R=((T63*)(r277base_class(C)))->_is_expanded/*20*/;
  164. return R;
  165. }
  166. /*No:TYPE_CLASS.jvm_if_x_eq*/
  167.  
  168.  
  169. void r277jvm_xnewarray(T277* C){
  170. T2 _idx=0;
  171. /*[IF*/
  172. if(r277is_reference(C)){
  173. _idx=((T29*)(oBC12constant_pool))->_idx_jvm_root_class/*12*/;
  174. }
  175. else{
  176. _idx=r23jvm_constant_pool_index((T23*)(r277run_class(C)));
  177. }
  178. /*FI]*/
  179. r28opcode_anewarray((T28*)(oBC12code_attribute),_idx);
  180. }
  181. /*No:TYPE_CLASS.jvm_push_local*/
  182. /*No:TYPE_CLASS.fz_dot*/
  183. /*No:TYPE_CLASS.is_like_feature*/
  184.  
  185.  
  186. T6 r277is_a(T277* C,T0* a1){
  187. T6 R=0;
  188. T0* _obcn=NULL;
  189. T0* _bcn=NULL;
  190. _bcn=(C)->_base_class_name/*4*/;
  191. _obcn=X52base_class_name(a1);
  192. /*[IF*/
  193. if(((((T70*)_bcn))->_to_string/*0*/)==((void*)((((T70*)_obcn))->_to_string/*0*/))){
  194. R=1;
  195. }
  196.  else if(r70is_subclass_of(((T70*)_bcn),_obcn)){
  197. /*[IF*/
  198. if(X52is_generic(a1)){
  199. R=r63is_a_vncg((T63*)(r70base_class(((T70*)_bcn))),(T0*)C,a1);
  200. }
  201. else{
  202. R=1;
  203. }
  204. /*FI]*/
  205. }
  206. /*FI]*/
  207. /*[IF*/
  208. if(!(R)){
  209. r21add_type((T0*)C,((T0*)ms13_17730));
  210. r21add_type(a1,((T0*)ms13_47));
  211. }
  212. /*FI]*/
  213. return R;
  214. }
  215. /*No:TYPE_CLASS.written_mark*/
  216. /*No:TYPE_CLASS.is_character*/
  217. /*No:TYPE_CLASS.make*/
  218.  
  219.  
  220. T2 r277jvm_convert_to(T277* C,T0* a1){
  221. T2 R=0;
  222. /*[IF*/
  223. if(r277is_reference(C)){
  224. /*[IF*/
  225. if(X52is_reference(a1)){
  226. R=1;
  227. }
  228. else{
  229. R=X52jvm_expanded_from_reference(a1,(T0*)C);
  230. }
  231. /*FI]*/
  232. }
  233.  else if(X52is_reference(a1)){
  234. r277jvm_to_reference(C);
  235. R=1;
  236. }
  237. else{
  238. R=1;
  239. }
  240. /*FI]*/
  241. return R;
  242. }
  243.  
  244.  
  245. void r277fatal_error_generic_list(T277* C){
  246. r21add_type((T0*)C,((T0*)ms52_29184));
  247. r21print_as_fatal_error((T21*)(oBC12eh));
  248. }
  249. /*No:TYPE_CLASS.is_array*/
  250.  
  251.  
  252. T2 r277jvm_push_default(T277* C){
  253. T2 R=0;
  254. R=1;
  255. /*[IF*/
  256. if(r277is_reference(C)){
  257. /*[IRF3.4opcode_aconst_null*/r28opcode((T28*)(oBC12code_attribute),1,1);
  258. /*]*/
  259. }
  260. else{
  261. r23jvm_expanded_push_default((T23*)(r277run_class(C)));
  262. }
  263. /*FI]*/
  264. return R;
  265. }
  266.  
  267.  
  268. T6 r277is_dummy_expanded(T277* C){
  269. T6 R=0;
  270. /*[IF*/
  271. if(r277is_expanded(C)){
  272. R=(r23writable_attributes((T23*)(r277run_class(C))))==((void*)(NULL));
  273. }
  274. /*FI]*/
  275. return R;
  276. }
  277.  
  278.  
  279. T0* r277generic_list(T277* C){
  280. T0* R=NULL;
  281. r277fatal_error_generic_list(C);
  282. return R;
  283. }
  284.  
  285.  
  286. T0* r277base_class(T277* C){
  287. T0* R=NULL;
  288. T0* _bcn=NULL;
  289. _bcn=(C)->_base_class_name/*4*/;
  290. /*[IF*/
  291. if((_bcn)!=((void*)(NULL))){
  292. R=r70base_class(((T70*)_bcn));
  293. }
  294. else{
  295. /*[IRF3.6append*/{T0* b1=((T0*)ms52_37098);
  296. r7append((T7*)(oBC21explanation),b1);
  297. }/*]*/
  298. r21add_type((T0*)C,((T0*)ms13_47));
  299. r21print_as_fatal_error((T21*)(oBC12eh));
  300. }
  301. /*FI]*/
  302. return R;
  303. }
  304. /*No:TYPE_CLASS.jvm_if_x_ne*/
  305. /*No:TYPE_CLASS.base_class_name*/
  306. /*No:TYPE_CLASS.fz_jvm_root*/
  307.  
  308.  
  309. void r277jvm_standard_is_equal(T277* C){
  310. T0* _wa=NULL;
  311. T0* _rc=NULL;
  312. _rc=r277run_class(C);
  313. _wa=r23writable_attributes(((T23*)_rc));
  314. r24std_is_equal(_rc,_wa);
  315. }
  316. /*No:TYPE_CLASS.is_formal_generic*/
  317.  
  318.  
  319. T6 r277is_a_in(T277* C,T0* a1,T0* a2){
  320. T6 R=0;
  321. T0* _ct=NULL;
  322. T0* _t2=NULL;
  323. T0* _t1=NULL;
  324. /*[IF*/
  325. if((/*(IRF4.6written_mark*/(((T70*)((C)->_base_class_name/*4*/)))->_to_string/*0*//*)*/)==((void*)(X52written_mark(a1)))){
  326. R=1;
  327. }
  328. else{
  329. _ct=(((T23*)a2))->_current_type/*0*/;
  330. _t1=r277to_runnable(C,_ct);
  331. _t2=X52to_runnable(a1,_ct);
  332. /*[IF*/
  333. if((X52run_time_mark(_t1))==((void*)(X52run_time_mark(_t2)))){
  334. R=1;
  335. }
  336. else{
  337. R=X52is_a(_t1,_t2);
  338. }
  339. /*FI]*/
  340. }
  341. /*FI]*/
  342. return R;
  343. }
  344.  
  345.  
  346. T0* r277look_up_for(T277* C,T0* a1,T0* a2){
  347. T0* R=NULL;
  348. R=r63look_up_for((T63*)(r277base_class(C)),a1,a2);
  349. return R;
  350. }
  351.  
  352.  
  353. void r277jvm_to_reference(T277* C){
  354. /*[IF*/
  355. if(r277is_expanded(C)){
  356. r23jvm_to_reference((T23*)(r277run_class(C)));
  357. }
  358. /*FI]*/
  359. }
  360. /*No:TYPE_CLASS.run_type*/
  361.  
  362.  
  363. T0* r277expanded_initializer(T277* C){
  364. T0* R=NULL;
  365. /*[IF*/
  366. if(r277is_expanded(C)){
  367. R=r63expanded_initializer((T63*)(r277base_class(C)),(T0*)C);
  368. }
  369. /*FI]*/
  370. return R;
  371. }
  372.  
  373.  
  374. T6 r277has_creation(T277* C,T0* a1){
  375. T6 R=0;
  376. R=r63has_creation((T63*)(r277base_class(C)),a1);
  377. return R;
  378. }
  379. /*No:TYPE_CLASS.jvm_method_flags*/
  380. /*No:TYPE_CLASS.is_boolean*/
  381. /*No:TYPE_CLASS.is_generic*/
  382. /*No:TYPE_CLASS.jvm_xaload*/
  383. /*No:TYPE_CLASS.is_real*/
  384.  
  385.  
  386. T0* r277jvm_root_descriptor(void){
  387. if(fBC12jvm_root_descriptor==0){
  388. fBC12jvm_root_descriptor=1;
  389. {T7*n=malloc(sizeof(*n));
  390. *n=M7;
  391. r7make(n,12);
  392. oBC12jvm_root_descriptor=(T0*)n;
  393. }
  394. r7extend(((T7*)oBC12jvm_root_descriptor),'L');
  395. r7append(((T7*)oBC12jvm_root_descriptor),r277jvm_root_class());
  396. r7extend(((T7*)oBC12jvm_root_descriptor),'\73');
  397. }
  398. return oBC12jvm_root_descriptor;}
  399. /*No:TYPE_CLASS.is_any*/
  400. T0*oBC277check_memory=NULL;
  401. /*No:TYPE_CLASS.is_basic_eiffel_expanded*/
  402.  
  403.  
  404. void r277jvm_descriptor_in(T277* C,T0* a1){
  405. /*[IF*/
  406. if(r277is_reference(C)){
  407. r7append(((T7*)a1),r277jvm_root_descriptor());
  408. }
  409. else{
  410. r23jvm_type_descriptor_in((T23*)(r277run_class(C)),a1);
  411. }
  412. /*FI]*/
  413. }
  414.  
  415.  
  416. T0* r277type_any(void){
  417. if(fBC12type_any==0){
  418. fBC12type_any=1;
  419. {T263*n=malloc(sizeof(*n));
  420. *n=M263;
  421. r263make(n,NULL);
  422. oBC12type_any=(T0*)n;
  423. }
  424. }
  425. return oBC12type_any;}
  426. /*No:TYPE_CLASS.is_string*/
  427.  
  428.  
  429. T6 r277is_native_array(T277* C){
  430. T6 R=0;
  431. T0* _tna=NULL;
  432. _tna=(T0*)C;
  433. if(NULL!=(_tna))switch(((T0*)_tna)->id) {
  434. case 267: 
  435. break;
  436. default:
  437. _tna=NULL;
  438. };R=(_tna)!=((void*)(NULL));
  439. return R;
  440. }
  441. /*No:TYPE_CLASS.is_integer*/
  442. /*No:TYPE_CLASS.is_anchored*/
  443. /*No:TYPE_CLASS.is_run_type*/
  444.  
  445.  
  446. T6 r277is_reference(T277* C){
  447. T6 R=0;
  448. R=!(((T63*)(r277base_class(C)))->_is_expanded/*20*/);
  449. return R;
  450. }
  451. /*No:TYPE_CLASS.is_none*/
  452. /*No:TYPE_CLASS.jvm_return_code*/
  453. /*No:TYPE_CLASS.jvm_target_descriptor_in*/
  454. /*No:TYPE_CLASS.fz_inako*/
  455. /*No:TYPE_CLASS.jvm_xastore*/
  456. /*No:TYPE_CLASS.is_like_argument*/
  457.  
  458.  
  459. T2 r277jvm_stack_space(void){
  460. T2 R=0;
  461. /*[IF*/
  462. /*AF*//*AE*/
  463. R=1;
  464. /*FI]*/
  465. return R;
  466. }
  467. /*No:TYPE_CLASS.is_double*/
  468.  
  469.  
  470. T2 r277jvm_expanded_from_reference(T0* a1){
  471. T2 R=0;
  472. return R;
  473. }
  474. /*No:PREFIX_NAME.is_frozen*/
  475.  
  476.  
  477. void r145undefine_in(T145* C,T0* a1){
  478. /*[IF*/
  479. /*AF*//*AE*/
  480. /*FI]*/
  481. }
  482.  
  483.  
  484. T0* r145origin_base_class(T145* C){
  485. T0* R=NULL;
  486. T0* _sp=NULL;
  487. _sp=(C)->_start_position/*8*/;
  488. /*[IF*/
  489. if((_sp)!=((void*)(NULL))){
  490. R=r59base_class(((T59*)_sp));
  491. }
  492. /*FI]*/
  493. return R;
  494. }
  495. /*No:PREFIX_NAME.start_position*/
  496. /*No:PREFIX_NAME.to_string*/
  497.  
  498.  
  499. void r145declaration_in(T145* C,T0* a1){
  500. r7append(((T7*)a1),((T0*)ms13_7614a));
  501. r7extend(((T7*)a1),'\40');
  502. r7extend(((T7*)a1),'\42');
  503. r7append(((T7*)a1),(C)->_to_string/*4*/);
  504. r7extend(((T7*)a1),'\42');
  505. }
  506. /*No:PREFIX_NAME.to_key*/
  507.  
  508.  
  509. void r145error(T0* a1,T0* a2){
  510. r21add_position(a1);
  511. r21error((T21*)(oBC12eh),a2);
  512. }
  513.  
  514.  
  515. void r145make(T145* C,T0* a1,T0* a2){
  516. C->_to_string=r86item(a1);
  517. C->_start_position=a2;
  518. C->_to_key=r86for_prefix((C)->_to_string/*4*/);
  519. }
  520. /*No:PREFIX_NAME.fz_prefix*/
  521. /*No:E_VOID.static_value*/
  522. /*No:E_VOID.is_static*/
  523. /*No:E_VOID.can_be_dropped*/
  524. /*No:E_VOID.is_manifest_string*/
  525. /*No:E_VOID.start_position*/
  526.  
  527.  
  528. T0* r160add_comment(T160* C,T0* a1){
  529. T0* R=NULL;
  530. /*[IF*/
  531. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
  532. R=(T0*)C;
  533. }
  534. else{
  535. {T234*n=malloc(sizeof(*n));
  536. *n=M234;
  537. r234make(n,(T0*)C,a1);
  538. R=(T0*)n;
  539. }
  540. }
  541. /*FI]*/
  542. return R;
  543. }
  544. /*No:E_VOID.compile_target_to_jvm*/
  545.  
  546.  
  547. T2 r160to_integer(T160* C){
  548. T2 R=0;
  549. r160error((C)->_start_position/*4*/,((T0*)ms13_45846));
  550. return R;
  551. }
  552. /*No:E_VOID.use_current*/
  553. /*No:E_VOID.jvm_branch_if_true*/
  554. /*No:E_VOID.to_runnable*/
  555.  
  556.  
  557. T2 r160compile_to_jvm_into(T0* a1){
  558. T2 R=0;
  559. R=1;
  560. /*[IRF3.2compile_to_jvm*//*[IRF3.4opcode_aconst_null*/r28opcode((T28*)(oBC12code_attribute),1,1);
  561. /*]*/
  562. /*]*/
  563. return R;
  564. }
  565. /*No:E_VOID.isa_dca_inline_argument*/
  566. /*No:E_VOID.is_pre_computable*/
  567. /*No:E_VOID.fz_iinaiv*/
  568. int fBC160result_type=0;
  569. T0*oBC160result_type=NULL;
  570.  
  571.  
  572. T0* r160result_type(void){
  573. if(fBC160result_type==0){
  574. fBC160result_type=1;
  575. {T273*n=malloc(sizeof(*n));
  576. *n=M273;
  577. r273make(n,NULL);
  578. oBC160result_type=(T0*)n;
  579. }
  580. }
  581. return oBC160result_type;}
  582.  
  583.  
  584. void r160error(T0* a1,T0* a2){
  585. r21add_position(a1);
  586. r21error((T21*)(oBC12eh),a2);
  587. }
  588. /*No:E_VOID.make*/
  589. /*No:E_VOID.compile_to_jvm_assignment*/
  590. /*No:E_VOID.is_current*/
  591. /*No:E_VOID.is_void*/
  592. /*No:E_VOID.compile_to_jvm_old*/
  593. /*No:E_VOID.jvm_assign*/
  594. /*No:E_VOID.jvm_branch_if_false*/
  595. /*No:E_VOID.compile_to_jvm*/
  596. /*No:E_VOID.afd_check*/
  597. /*No:E_VOID.is_result*/
  598. /*No:RENAME_PAIR.new_name*/
  599. /*No:RENAME_PAIR.old_name*/
  600.  
  601.  
  602. void r90make(T90* C,T0* a1,T0* a2){
  603. /*[IF*/
  604. if((X50to_string(a1))==((void*)(X50to_string(a2)))){
  605. r21add_position(X50start_position(a1));
  606. r21add_position(X50start_position(a2));
  607. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms90_91800);
  608. r21fatal_error((T21*)(oBC12eh),b1);
  609. }/*]*/
  610. }
  611. /*FI]*/
  612. C->_old_name=a1;
  613. C->_new_name=a2;
  614. }
  615. /*No:RENAME_PAIR.fatal_error*/
  616. /*No:FROZEN_FEATURE_NAME.is_frozen*/
  617. /*No:FROZEN_FEATURE_NAME.feature_name*/
  618.  
  619.  
  620. void r320undefine_in(T320* C,T0* a1){
  621. /*[IF*/
  622. {/*AT*/r320error(r320start_position(C),((T0*)ms50_117530));
  623. r63fatal_undefine(((T63*)a1),(T0*)C);
  624. }
  625. /*FI]*/
  626. }
  627.  
  628.  
  629. T0* r320origin_base_class(T320* C){
  630. T0* R=NULL;
  631. T0* _sp=NULL;
  632. _sp=r320start_position(C);
  633. /*[IF*/
  634. if((_sp)!=((void*)(NULL))){
  635. R=r59base_class(((T59*)_sp));
  636. }
  637. /*FI]*/
  638. return R;
  639. }
  640.  
  641.  
  642. T0* r320start_position(T320* C){
  643. T0* R=NULL;
  644. R=X50start_position((C)->_feature_name/*4*/);
  645. return R;
  646. }
  647.  
  648.  
  649. T0* r320to_string(T320* C){
  650. T0* R=NULL;
  651. R=X50to_string((C)->_feature_name/*4*/);
  652. return R;
  653. }
  654.  
  655.  
  656. void r320declaration_in(T320* C,T0* a1){
  657. X50declaration_in((C)->_feature_name/*4*/,a1);
  658. }
  659.  
  660.  
  661. T0* r320to_key(T320* C){
  662. T0* R=NULL;
  663. R=X50to_key((C)->_feature_name/*4*/);
  664. return R;
  665. }
  666.  
  667.  
  668. void r320error(T0* a1,T0* a2){
  669. r21add_position(a1);
  670. r21error((T21*)(oBC12eh),a2);
  671. }
  672. /*No:FROZEN_FEATURE_NAME.make*/
  673. /*No:STD_OUTPUT.put_new_line*/
  674. /*No:STD_OUTPUT.flush*/
  675.  
  676.  
  677. void r33put_string(T33* C,T0* a1){
  678. T2 _i=0;
  679. _i=1;
  680. while (!((_i)>((((T7*)a1))->_count/*4*/))) {
  681. /*[IRF3.6put_character*/{T33* C1=C;
  682. T3 b1=/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(_i)-(1)]/*)*/;
  683. putc(b1,((FILE*)(stdout)));
  684. }/*]*/
  685. _i=(_i)+(1);
  686. }
  687. }
  688. /*No:STD_OUTPUT.make*/
  689. /*No:STD_OUTPUT.put_character*/
  690. T0*oBC34tmp_string=NULL;
  691.  
  692.  
  693. void r33put_integer(T33* C,T2 a1){
  694. /*[IRF3.3clear*/((((T7*)((T7*)(oBC34tmp_string))))->_count)=(0);
  695. /*]*/
  696. r2append_in(a1,oBC34tmp_string);
  697. r33put_string(C,oBC34tmp_string);
  698. }
  699. /*No:LOOP_VARIANT_2.nb_errors*/
  700. /*No:LOOP_VARIANT_2.tag*/
  701.  
  702.  
  703. T0* r249start_position(T249* C){
  704. T0* R=NULL;
  705. R=X109start_position((C)->_expression/*8*/);
  706. return R;
  707. }
  708.  
  709.  
  710. T0* r249twin(T249* C){
  711. T0* R=NULL;
  712. R=malloc(sizeof(*C));
  713. *((T249*)R)=*C;
  714. return R;
  715. }
  716. /*No:LOOP_VARIANT_2.expression*/
  717.  
  718.  
  719. T6 r249use_current(T249* C){
  720. T6 R=0;
  721. R=X109use_current((C)->_expression/*8*/);
  722. return R;
  723. }
  724.  
  725.  
  726. T0* r249to_runnable(T249* C,T0* a1){
  727. T0* R=NULL;
  728. T0* _e=NULL;
  729. /*[IF*/
  730. if(((C)->_current_type/*12*/)==((void*)(NULL))){
  731. C->_current_type=a1;
  732. _e=X109to_runnable((C)->_expression/*8*/,a1);
  733. /*[IF*/
  734. if((_e)==((void*)(NULL))){
  735. r249error(r249start_position(C),((T0*)ms246_20400));
  736. }
  737. else{
  738. C->_expression=_e;
  739. /*[IF*/
  740. if(!(X52is_integer(X109result_type((C)->_expression/*8*/)))){
  741. r249error(X109start_position((C)->_expression/*8*/),((T0*)ms246_86602));
  742. }
  743. /*FI]*/
  744. }
  745. /*FI]*/
  746. /*[IF*/
  747. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  748. R=(T0*)C;
  749. }
  750. /*FI]*/
  751. }
  752. else{
  753. R=r249twin(C);
  754. /*[IRF3.3set_current_type*/((((T249*)(((T249*)R))))->_current_type)=(NULL);
  755. /*]*/
  756. R=r249to_runnable(((T249*)R),a1);
  757. }
  758. /*FI]*/
  759. return R;
  760. }
  761. /*No:LOOP_VARIANT_2.set_current_type*/
  762. /*No:LOOP_VARIANT_2.current_type*/
  763.  
  764.  
  765. void r249error(T0* a1,T0* a2){
  766. r21add_position(a1);
  767. r21error((T21*)(oBC12eh),a2);
  768. }
  769.  
  770.  
  771. void r249make(T249* C,T0* a1,T0* a2,T0* a3){
  772. C->_comment=a3;
  773. C->_tag=a1;
  774. C->_expression=a2;
  775. }
  776. /*No:LOOP_VARIANT_2.comment*/
  777.  
  778.  
  779. void r249afd_check(T249* C){
  780. X109afd_check((C)->_expression/*8*/);
  781. }
  782.  
  783.  
  784. T2 r133static_value(T133* C){
  785. T2 R=0;
  786. /*[IF*/
  787. if(X109is_void((C)->_target/*4*/)){
  788. R=r133static_eq_void(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  789. }
  790.  else if(X109is_void(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/)){
  791. R=r133static_eq_void((C)->_target/*4*/);
  792. }
  793.  else if((X109is_static((C)->_target/*4*/))&&(X109is_static(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))){
  794. /*[IF*/
  795. if((X109static_value((C)->_target/*4*/))==(X109static_value(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))){
  796. R=1;
  797. }
  798. /*FI]*/
  799. }
  800. /*FI]*/
  801. return R;
  802. }
  803. /*No:CALL_INFIX_EQ.feature_name*/
  804.  
  805.  
  806. T6 r133is_static(T133* C){
  807. T6 R=0;
  808. /*[IF*/
  809. if(X109is_void((C)->_target/*4*/)){
  810. R=r133is_static_eq_void(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  811. }
  812.  else if(X109is_void(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/)){
  813. R=r133is_static_eq_void((C)->_target/*4*/);
  814. }
  815.  else if((X109is_static((C)->_target/*4*/))&&(X109is_static(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))){
  816. R=1;
  817. }
  818. /*FI]*/
  819. return R;
  820. }
  821. /*No:CALL_INFIX_EQ.is_manifest_string*/
  822.  
  823.  
  824. void r133jvm_void_cmp(T0* a1){
  825. T2 _space=0;
  826. T2 _point2=0;
  827. T2 _point1=0;
  828. T0* _rt=NULL;
  829. _rt=X52run_type(X109result_type(a1));
  830. /*[IF*/
  831. if(X52is_expanded(_rt)){
  832. X109compile_to_jvm(a1);
  833. _space=X52jvm_stack_space(_rt);
  834. while (!((_space)==(0))) {
  835. /*[IRF3.4opcode_pop*/r28opcode((T28*)(oBC12code_attribute),87,-(1));
  836. /*]*/
  837. _space=(_space)-(1);
  838. }
  839. /*[IRF3.4opcode_iconst_0*/r28opcode((T28*)(oBC12code_attribute),3,1);
  840. /*]*/
  841. }
  842. else{
  843. X109compile_to_jvm(a1);
  844. _point1=r28opcode_ifnull((T28*)(oBC12code_attribute));
  845. /*[IRF3.4opcode_iconst_0*/r28opcode((T28*)(oBC12code_attribute),3,1);
  846. /*]*/
  847. _point2=r28opcode_goto((T28*)(oBC12code_attribute));
  848. r28resolve_u2_branch(_point1);
  849. /*[IRF3.4opcode_iconst_1*/r28opcode((T28*)(oBC12code_attribute),4,1);
  850. /*]*/
  851. r28resolve_u2_branch(_point2);
  852. }
  853. /*FI]*/
  854. }
  855.  
  856.  
  857. T0* r133start_position(T133* C){
  858. T0* R=NULL;
  859. R=((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/;
  860. return R;
  861. }
  862.  
  863.  
  864. void r133error_comparison(T133* C,T0* a1,T0* a2){
  865. r21add_position(((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/);
  866. /*[IRF3.6append*/{T0* b1=((T0*)ms132_9960);
  867. r7append((T7*)(oBC21explanation),b1);
  868. }/*]*/
  869. /*[IRF3.6append*/{T0* b1=a1;
  870. r7append((T7*)(oBC21explanation),b1);
  871. }/*]*/
  872. /*[IRF3.6append*/{T0* b1=((T0*)ms132_88736);
  873. r7append((T7*)(oBC21explanation),b1);
  874. }/*]*/
  875. r21add_type(a2,((T0*)ms13_47));
  876. r21print_as_fatal_error((T21*)(oBC12eh));
  877. }
  878.  
  879.  
  880. T0* r133add_comment(T133* C,T0* a1){
  881. T0* R=NULL;
  882. /*[IF*/
  883. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
  884. R=(T0*)C;
  885. }
  886. else{
  887. {T234*n=malloc(sizeof(*n));
  888. *n=M234;
  889. r234make(n,(T0*)C,a1);
  890. R=(T0*)n;
  891. }
  892. }
  893. /*FI]*/
  894. return R;
  895. }
  896.  
  897.  
  898. T2 r133to_integer(T133* C){
  899. T2 R=0;
  900. r133error(r133start_position(C),((T0*)ms13_45846));
  901. return R;
  902. }
  903.  
  904.  
  905. T6 r133use_current(T133* C){
  906. T6 R=0;
  907. R=(X109use_current((C)->_target/*4*/))||(X109use_current(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
  908. return R;
  909. }
  910. /*No:CALL_INFIX_EQ.jvm_branch_if_true*/
  911.  
  912.  
  913. T6 r133is_static_eq_void(T0* a1){
  914. T6 R=0;
  915. T0* _rt=NULL;
  916. /*[IF*/
  917. if(X109is_current(a1)){
  918. R=1;
  919. }
  920.  else if(X109is_manifest_string(a1)){
  921. R=1;
  922. }
  923.  else if(r133is_manifest_array(a1)){
  924. R=1;
  925. }
  926. else{
  927. _rt=X52run_type(X109result_type(a1));
  928. /*[IF*/
  929. if(X52is_expanded(_rt)){
  930. /*[IF*/
  931. if(X109can_be_dropped(a1)){
  932. R=1;
  933. }
  934. /*FI]*/
  935. }
  936.  else if(X109is_static(a1)){
  937. /*[IF*/
  938. if((X109static_value(a1))==(0)){
  939. R=1;
  940. }
  941. /*FI]*/
  942. }
  943. /*FI]*/
  944. }
  945. /*FI]*/
  946. return R;
  947. }
  948.  
  949.  
  950. T0* r133to_runnable(T133* C,T0* a1){
  951. T0* R=NULL;
  952. T0* _a=NULL;
  953. T0* _t=NULL;
  954. _t=r133runnable_expression((C)->_target/*4*/,a1);
  955. _a=r133runnable_args((C)->_arguments/*8*/,a1);
  956. /*[IF*/
  957. if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
  958. R=(T0*)C;
  959. }
  960. else{
  961. {T133*n=malloc(sizeof(*n));
  962. *n=M133;
  963. r133with(n,_t,(C)->_feature_name/*12*/,_a);
  964. R=(T0*)n;
  965. }
  966. }
  967. /*FI]*/
  968. r133check_comparison(((T133*)R),a1);
  969. return R;
  970. }
  971.  
  972.  
  973. T2 r133static_eq_void(T0* a1){
  974. T2 R=0;
  975. T0* _rt=NULL;
  976. /*[IF*/
  977. if(X109is_current(a1)){
  978. }
  979.  else if(X109is_manifest_string(a1)){
  980. }
  981.  else if(r133is_manifest_array(a1)){
  982. }
  983. else{
  984. _rt=X52run_type(X109result_type(a1));
  985. /*[IF*/
  986. if(X52is_expanded(_rt)){
  987. /*[IF*/
  988. if(X109can_be_dropped(a1)){
  989. R=0;
  990. }
  991. /*FI]*/
  992. }
  993.  else if(X109is_static(a1)){
  994. /*[IF*/
  995. if((X109static_value(a1))==(0)){
  996. R=1;
  997. }
  998. /*FI]*/
  999. }
  1000. /*FI]*/
  1001. }
  1002. /*FI]*/
  1003. return R;
  1004. }
  1005.  
  1006.  
  1007. T2 r133compile_to_jvm_into(T133* C,T0* a1){
  1008. T2 R=0;
  1009. R=r133standard_compile_to_jvm_into(C,a1);
  1010. return R;
  1011. }
  1012. /*No:CALL_INFIX_EQ.is_pre_computable*/
  1013. /*No:CALL_INFIX_EQ.fz_bad_argument*/
  1014. /*No:CALL_INFIX_EQ.fz_iinaiv*/
  1015. /*No:CALL_INFIX_EQ.result_type*/
  1016. /*No:CALL_INFIX_EQ.run_feature*/
  1017.  
  1018.  
  1019. T0* r133runnable_args(T0* a1,T0* a2){
  1020. T0* R=NULL;
  1021. R=r152to_runnable(((T152*)a1),a2);
  1022. /*[IF*/
  1023. if((R)==((void*)(NULL))){
  1024. r21add_position(r152start_position(((T152*)a1)));
  1025. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_13065);
  1026. r21fatal_error((T21*)(oBC12eh),b1);
  1027. }/*]*/
  1028. }
  1029. /*FI]*/
  1030. return R;
  1031. }
  1032.  
  1033.  
  1034. void r133standard_compile_target_to_jvm(T133* C){
  1035. r133compile_to_jvm(C);
  1036. X52jvm_check_class_invariant(/*(IRF4.8result_type*/r133type_boolean()/*)*/);
  1037. }
  1038. /*No:CALL_INFIX_EQ.compile_to_jvm_assignment*/
  1039.  
  1040.  
  1041. void r133compile_to_jvm_old(T133* C){
  1042. X109compile_to_jvm_old((C)->_target/*4*/);
  1043. /*[IF*/
  1044. {/*AT*/r152compile_to_jvm_old((T152*)((C)->_arguments/*8*/));
  1045. }
  1046. /*FI]*/
  1047. }
  1048. /*No:CALL_INFIX_EQ.jvm_assign*/
  1049.  
  1050.  
  1051. void r133check_comparison(T133* C,T0* a1){
  1052. T0* _at=NULL;
  1053. T0* _tt=NULL;
  1054. /*[IF*/
  1055. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  1056. _tt=X52run_type(X109result_type((C)->_target/*4*/));
  1057. _at=X52run_type(X109result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
  1058. /*[IF*/
  1059. if(X52is_none(_tt)){
  1060. /*[IF*/
  1061. if(X52is_expanded(_at)){
  1062. X52used_as_reference(_at);
  1063. }
  1064. /*FI]*/
  1065. }
  1066.  else if(X52is_none(_at)){
  1067. /*[IF*/
  1068. if(X52is_expanded(_tt)){
  1069. X52used_as_reference(_tt);
  1070. }
  1071. /*FI]*/
  1072. }
  1073.  else if(X52is_reference(_tt)){
  1074. /*[IF*/
  1075. if(X52is_reference(_at)){
  1076. /*[IF*/
  1077. if(X52is_a(_tt,_at)){
  1078. }
  1079. else{
  1080. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  1081. /*]*/
  1082. /*[IRF3.3clear*/((((T58*)((T58*)(oBC21positions))))->_upper)=(-(1));
  1083. /*]*/
  1084. /*]*/
  1085. /*[IF*/
  1086. if(X52is_a(_at,_tt)){
  1087. }
  1088. else{
  1089. r133error_comparison(C,((T0*)ms132_46246),a1);
  1090. }
  1091. /*FI]*/
  1092. }
  1093. /*FI]*/
  1094. }
  1095.  else if(!(X52is_a(_at,_tt))){
  1096. r133error_comparison(C,((T0*)ms132_41670),a1);
  1097. }
  1098. else{
  1099. X52used_as_reference(_at);
  1100. }
  1101. /*FI]*/
  1102. }
  1103. else{
  1104. /*[IF*/
  1105. if(X52is_expanded(_at)){
  1106. /*[IF*/
  1107. if(X52is_basic_eiffel_expanded(_at)){
  1108. /*[IF*/
  1109. if(X52is_a(_tt,_at)){
  1110. }
  1111. else{
  1112. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  1113. /*]*/
  1114. /*[IRF3.3clear*/((((T58*)((T58*)(oBC21positions))))->_upper)=(-(1));
  1115. /*]*/
  1116. /*]*/
  1117. /*[IF*/
  1118. if(X52is_a(_at,_tt)){
  1119. }
  1120. else{
  1121. r133error_comparison(C,((T0*)ms132_37791),a1);
  1122. }
  1123. /*FI]*/
  1124. }
  1125. /*FI]*/
  1126. }
  1127.  else if(X52is_bit(_tt)){
  1128. r133bit_limitation(C,_tt,_at);
  1129. }
  1130.  else if(!(X52is_a(_at,_tt))){
  1131. r133error_comparison(C,((T0*)ms132_37791a),a1);
  1132. }
  1133. /*FI]*/
  1134. }
  1135.  else if(!(X52is_a(_tt,_at))){
  1136. r133error_comparison(C,((T0*)ms132_42138),a1);
  1137. }
  1138. else{
  1139. X52used_as_reference(_tt);
  1140. }
  1141. /*FI]*/
  1142. }
  1143. /*FI]*/
  1144. }
  1145. /*FI]*/
  1146. }
  1147. /*No:CALL_INFIX_EQ.jvm_branch_if_false*/
  1148.  
  1149.  
  1150. void r133bit_limitation(T133* C,T0* a1,T0* a2){
  1151. T0* _b2=NULL;
  1152. T0* _b1=NULL;
  1153. _b1=a1;
  1154. if(NULL!=(_b1))switch(((T0*)_b1)->id) {
  1155. case 280: case 282: 
  1156. break;
  1157. default:
  1158. _b1=NULL;
  1159. };_b2=a2;
  1160. if(NULL!=(_b2))switch(((T0*)_b2)->id) {
  1161. case 280: case 282: 
  1162. break;
  1163. default:
  1164. _b2=NULL;
  1165. };/*[IF*/
  1166. if((X281nb(_b1))!=(X281nb(_b2))){
  1167. r21add_position(((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/);
  1168. /*[IRF3.6append*/{T0* b1=((T0*)ms132_21261);
  1169. r7append((T7*)(oBC21explanation),b1);
  1170. }/*]*/
  1171. r21add_type(_b1,((T0*)ms132_1930));
  1172. r21add_type(_b2,((T0*)ms132_383757));
  1173. r21print_as_fatal_error((T21*)(oBC12eh));
  1174. }
  1175. /*FI]*/
  1176. }
  1177.  
  1178.  
  1179. void r133compile_to_jvm(T133* C){
  1180. T0* _rc=NULL;
  1181. T0* _rt=NULL;
  1182. T2 _point2=0;
  1183. T2 _point1=0;
  1184. T2 _space=0;
  1185. /*[IF*/
  1186. if(X109is_void((C)->_target/*4*/)){
  1187. r133jvm_void_cmp(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  1188. }
  1189.  else if(X109is_void(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/)){
  1190. r133jvm_void_cmp((C)->_target/*4*/);
  1191. }
  1192. else{
  1193. _rt=X52smallest_ancestor(X109result_type((C)->_target/*4*/),X109result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
  1194. _space=X109compile_to_jvm_into((C)->_target/*4*/,_rt);
  1195. _space=X109compile_to_jvm_into(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/,_rt);
  1196. /*[IF*/
  1197. if(X52is_user_expanded(_rt)){
  1198. _rc=X52run_class(_rt);
  1199. r24std_is_equal(_rc,r23writable_attributes(((T23*)_rc)));
  1200. }
  1201. else{
  1202. _point1=X52jvm_if_x_eq(_rt);
  1203. /*[IRF3.4opcode_iconst_0*/r28opcode((T28*)(oBC12code_attribute),3,1);
  1204. /*]*/
  1205. _point2=r28opcode_goto((T28*)(oBC12code_attribute));
  1206. r28resolve_u2_branch(_point1);
  1207. /*[IRF3.4opcode_iconst_1*/r28opcode((T28*)(oBC12code_attribute),4,1);
  1208. /*]*/
  1209. r28resolve_u2_branch(_point2);
  1210. }
  1211. /*FI]*/
  1212. }
  1213. /*FI]*/
  1214. }
  1215. /*No:CALL_INFIX_EQ.arg_count*/
  1216.  
  1217.  
  1218. void r133with(T133* C,T0* a1,T0* a2,T0* a3){
  1219. C->_target=a1;
  1220. C->_feature_name=a2;
  1221. C->_arguments=a3;
  1222. }
  1223. /*No:CALL_INFIX_EQ.us_eq*/
  1224. /*No:CALL_INFIX_EQ.is_result*/
  1225. /*No:CALL_INFIX_EQ.fatal_error*/
  1226. /*No:CALL_INFIX_EQ.nb_errors*/
  1227. int fBC12type_boolean=0;
  1228. T0*oBC12type_boolean=NULL;
  1229.  
  1230.  
  1231. T0* r133type_boolean(void){
  1232. if(fBC12type_boolean==0){
  1233. fBC12type_boolean=1;
  1234. {T268*n=malloc(sizeof(*n));
  1235. *n=M268;
  1236. r268make(n,NULL);
  1237. oBC12type_boolean=(T0*)n;
  1238. }
  1239. }
  1240. return oBC12type_boolean;}
  1241. /*No:CALL_INFIX_EQ.arguments*/
  1242.  
  1243.  
  1244. T0* r133runnable_expression(T0* a1,T0* a2){
  1245. T0* R=NULL;
  1246. R=X109to_runnable(a1,a2);
  1247. /*[IF*/
  1248. if((R)==((void*)(NULL))){
  1249. r21add_position(X109start_position(a1));
  1250. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms121_16515);
  1251. r21fatal_error((T21*)(oBC12eh),b1);
  1252. }/*]*/
  1253. }
  1254. /*FI]*/
  1255. return R;
  1256. }
  1257. /*No:CALL_INFIX_EQ.can_be_dropped*/
  1258.  
  1259.  
  1260. T6 r133is_manifest_array(T0* a1){
  1261. T6 R=0;
  1262. T0* _ma=NULL;
  1263. _ma=a1;
  1264. if(NULL!=(_ma))switch(((T0*)_ma)->id) {
  1265. case 113: 
  1266. break;
  1267. default:
  1268. _ma=NULL;
  1269. };R=(_ma)!=((void*)(NULL));
  1270. return R;
  1271. }
  1272. /*No:CALL_INFIX_EQ.compile_target_to_jvm*/
  1273. /*No:CALL_INFIX_EQ.isa_dca_inline_argument*/
  1274. /*No:CALL_INFIX_EQ.arg1*/
  1275. /*No:CALL_INFIX_EQ.fz_dot*/
  1276.  
  1277.  
  1278. T2 r133jvm_standard_branch_if_false(T133* C){
  1279. T2 R=0;
  1280. r133compile_to_jvm(C);
  1281. R=r28opcode_ifeq((T28*)(oBC12code_attribute));
  1282. return R;
  1283. }
  1284. /*No:CALL_INFIX_EQ.target*/
  1285.  
  1286.  
  1287. void r133error(T0* a1,T0* a2){
  1288. r21add_position(a1);
  1289. r21error((T21*)(oBC12eh),a2);
  1290. }
  1291.  
  1292.  
  1293. void r133make(T133* C,T0* a1,T0* a2,T0* a3){
  1294. C->_target=a1;
  1295. {T141*n=malloc(sizeof(*n));
  1296. *n=M141;
  1297. r141make(n,r133operator(),a2);
  1298. C->_feature_name=(T0*)n;
  1299. }
  1300. {T152*n=malloc(sizeof(*n));
  1301. *n=M152;
  1302. /*[IRF3.3make_1*/((((T152*)(n)))->_first_one)=(a3);
  1303. /*]*/
  1304. C->_arguments=(T0*)n;
  1305. }
  1306. }
  1307. /*No:CALL_INFIX_EQ.is_current*/
  1308.  
  1309.  
  1310. T2 r133standard_compile_to_jvm_into(T133* C,T0* a1){
  1311. T2 R=0;
  1312. r133compile_to_jvm(C);
  1313. R=X52jvm_convert_to(X52run_type(/*(IRF4.8result_type*/r133type_boolean()/*)*/),a1);
  1314. return R;
  1315. }
  1316. /*No:CALL_INFIX_EQ.is_void*/
  1317.  
  1318.  
  1319. T0* r133operator(void){
  1320. T0* R=NULL;
  1321. R=((T0*)ms14_62);
  1322. return R;
  1323. }
  1324.  
  1325.  
  1326. T2 r133jvm_standard_branch_if_true(T133* C){
  1327. T2 R=0;
  1328. r133compile_to_jvm(C);
  1329. R=r28opcode_ifne((T28*)(oBC12code_attribute));
  1330. return R;
  1331. }
  1332.  
  1333.  
  1334. void r133afd_check(T133* C){
  1335. X109afd_check((C)->_target/*4*/);
  1336. X109afd_check(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  1337. }
  1338. /*No:CALL_INFIX_AND.static_value*/
  1339. /*No:CALL_INFIX_AND.feature_name*/
  1340.  
  1341.  
  1342. T6 r125is_static(T125* C){
  1343. T6 R=0;
  1344. /*[IF*/
  1345. if(X52is_boolean(X109result_type((C)->_target/*4*/))){
  1346. /*[IF*/
  1347. if((X109is_static((C)->_target/*4*/))&&(X109is_static(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))){
  1348. R=1;
  1349. C->_static_value_mem=(X109static_value((C)->_target/*4*/))+(X109static_value(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
  1350. /*[IF*/
  1351. if(((C)->_static_value_mem/*20*/)==(2)){
  1352. C->_static_value_mem=1;
  1353. }
  1354. else{
  1355. C->_static_value_mem=0;
  1356. }
  1357. /*FI]*/
  1358. }
  1359. /*FI]*/
  1360. }
  1361. /*FI]*/
  1362. return R;
  1363. }
  1364. /*No:CALL_INFIX_AND.is_manifest_string*/
  1365.  
  1366.  
  1367. T0* r125start_position(T125* C){
  1368. T0* R=NULL;
  1369. R=((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/;
  1370. return R;
  1371. }
  1372.  
  1373.  
  1374. T0* r125add_comment(T125* C,T0* a1){
  1375. T0* R=NULL;
  1376. /*[IF*/
  1377. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
  1378. R=(T0*)C;
  1379. }
  1380. else{
  1381. {T234*n=malloc(sizeof(*n));
  1382. *n=M234;
  1383. r234make(n,(T0*)C,a1);
  1384. R=(T0*)n;
  1385. }
  1386. }
  1387. /*FI]*/
  1388. return R;
  1389. }
  1390.  
  1391.  
  1392. T2 r125to_integer(T125* C){
  1393. T2 R=0;
  1394. r125error(r125start_position(C),((T0*)ms13_45846));
  1395. return R;
  1396. }
  1397.  
  1398.  
  1399. T6 r125use_current(T125* C){
  1400. T6 R=0;
  1401. /*[IF*/
  1402. {/*AT*/R=r152use_current((T152*)((C)->_arguments/*8*/));
  1403. }
  1404. /*FI]*/
  1405. /*[IF*/
  1406. if(R){
  1407. }
  1408.  else if(X109is_current((C)->_target/*4*/)){
  1409. R=X27use_current((C)->_run_feature/*16*/);
  1410. }
  1411. else{
  1412. R=X109use_current((C)->_target/*4*/);
  1413. }
  1414. /*FI]*/
  1415. return R;
  1416. }
  1417. /*No:CALL_INFIX_AND.jvm_branch_if_true*/
  1418.  
  1419.  
  1420. T0* r125to_runnable(T125* C,T0* a1){
  1421. T0* R=NULL;
  1422. T0* _rf=NULL;
  1423. T0* _tbee=NULL;
  1424. T0* _at=NULL;
  1425. T0* _tt=NULL;
  1426. T0* _a=NULL;
  1427. T0* _t=NULL;
  1428. _t=r125runnable_expression((C)->_target/*4*/,a1);
  1429. _a=r125runnable_args((C)->_arguments/*8*/,a1);
  1430. _tt=X109result_type(_t);
  1431. _at=X109result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  1432. /*[IF*/
  1433. /*AF*//*AE*/
  1434. /*FI]*/
  1435. _rf=r125run_feature_for(C,_t,a1);
  1436. /*[IF*/
  1437. if(((C)->_run_feature/*16*/)==((void*)(NULL))){
  1438. C->_target=_t;
  1439. C->_arguments=_a;
  1440. C->_run_feature=_rf;
  1441. r125run_feature_match(C,a1);
  1442. R=(T0*)C;
  1443. }
  1444.  else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
  1445. R=(T0*)C;
  1446. }
  1447. else{
  1448. {T125*n=malloc(sizeof(*n));
  1449. *n=M125;
  1450. r125with(n,_t,(C)->_feature_name/*12*/,_a,_rf,a1);
  1451. R=(T0*)n;
  1452. }
  1453. }
  1454. /*FI]*/
  1455. return R;
  1456. }
  1457.  
  1458.  
  1459. T2 r125compile_to_jvm_into(T125* C,T0* a1){
  1460. T2 R=0;
  1461. R=r125standard_compile_to_jvm_into(C,a1);
  1462. return R;
  1463. }
  1464. /*No:CALL_INFIX_AND.is_pre_computable*/
  1465. /*No:CALL_INFIX_AND.fz_bad_argument*/
  1466. /*No:CALL_INFIX_AND.fz_iinaiv*/
  1467.  
  1468.  
  1469. T0* r125result_type(T125* C){
  1470. T0* R=NULL;
  1471. T0* _tla=NULL;
  1472. R=X27result_type((C)->_run_feature/*16*/);
  1473. /*[IF*/
  1474. if(X52is_like_current(R)){
  1475. R=/*X27current_type*/((T0*)((T26*)((C)->_run_feature/*16*/))->_current_type/*4*/);
  1476. }
  1477. else{
  1478. _tla=R;
  1479. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  1480. case 262: 
  1481. break;
  1482. default:
  1483. _tla=NULL;
  1484. };/*[IF*/
  1485. if((_tla)!=((void*)(NULL))){
  1486. R=X52run_type(X109result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
  1487. }
  1488. /*FI]*/
  1489. }
  1490. /*FI]*/
  1491. return R;
  1492. }
  1493. /*No:CALL_INFIX_AND.static_value_mem*/
  1494. /*No:CALL_INFIX_AND.run_feature*/
  1495.  
  1496.  
  1497. T0* r125runnable_args(T0* a1,T0* a2){
  1498. T0* R=NULL;
  1499. R=r152to_runnable(((T152*)a1),a2);
  1500. /*[IF*/
  1501. if((R)==((void*)(NULL))){
  1502. r21add_position(r152start_position(((T152*)a1)));
  1503. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_13065);
  1504. r21fatal_error((T21*)(oBC12eh),b1);
  1505. }/*]*/
  1506. }
  1507. /*FI]*/
  1508. return R;
  1509. }
  1510.  
  1511.  
  1512. void r125standard_compile_target_to_jvm(T125* C){
  1513. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T125* C1=C;
  1514. r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
  1515. }/*]*/
  1516. /*]*/
  1517. X52jvm_check_class_invariant(r125result_type(C));
  1518. }
  1519. /*No:CALL_INFIX_AND.compile_to_jvm_assignment*/
  1520. /*No:CALL_INFIX_AND.fz_07*/
  1521.  
  1522.  
  1523. void r125compile_to_jvm_old(T125* C){
  1524. X109compile_to_jvm_old((C)->_target/*4*/);
  1525. /*[IF*/
  1526. {/*AT*/r152compile_to_jvm_old((T152*)((C)->_arguments/*8*/));
  1527. }
  1528. /*FI]*/
  1529. }
  1530. /*No:CALL_INFIX_AND.jvm_assign*/
  1531. /*No:CALL_INFIX_AND.jvm_branch_if_false*/
  1532. /*No:CALL_INFIX_AND.compile_to_jvm*/
  1533. /*No:CALL_INFIX_AND.arg_count*/
  1534.  
  1535.  
  1536. void r125with(T125* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  1537. C->_target=a1;
  1538. C->_feature_name=a2;
  1539. C->_arguments=a3;
  1540. C->_run_feature=a4;
  1541. r125run_feature_match(C,a5);
  1542. }
  1543. /*No:CALL_INFIX_AND.call_proc_call_c2jvm*/
  1544. /*No:CALL_INFIX_AND.is_result*/
  1545. /*No:CALL_INFIX_AND.fatal_error*/
  1546.  
  1547.  
  1548. void r125run_feature_match(T125* C,T0* a1){
  1549. r125run_feature_has_result(C);
  1550. r152match_with((T152*)((C)->_arguments/*8*/),(C)->_run_feature/*16*/,a1);
  1551. }
  1552. /*No:CALL_INFIX_AND.arguments*/
  1553.  
  1554.  
  1555. T0* r125runnable_expression(T0* a1,T0* a2){
  1556. T0* R=NULL;
  1557. R=X109to_runnable(a1,a2);
  1558. /*[IF*/
  1559. if((R)==((void*)(NULL))){
  1560. r21add_position(X109start_position(a1));
  1561. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms121_16515);
  1562. r21fatal_error((T21*)(oBC12eh),b1);
  1563. }/*]*/
  1564. }
  1565. /*FI]*/
  1566. return R;
  1567. }
  1568. /*No:CALL_INFIX_AND.can_be_dropped*/
  1569. /*No:CALL_INFIX_AND.implicit_cast*/
  1570. /*No:CALL_INFIX_AND.compile_target_to_jvm*/
  1571. /*No:CALL_INFIX_AND.isa_dca_inline_argument*/
  1572. /*No:CALL_INFIX_AND.arg1*/
  1573.  
  1574.  
  1575. void r125run_feature_has_result(T125* C){
  1576. /*[IF*/
  1577. if((X27result_type((C)->_run_feature/*16*/))==((void*)(NULL))){
  1578. r21add_position(X27start_position((C)->_run_feature/*16*/));
  1579. r21add_position(((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/);
  1580. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms120_53650);
  1581. r21fatal_error((T21*)(oBC12eh),b1);
  1582. }/*]*/
  1583. }
  1584. /*FI]*/
  1585. }
  1586.  
  1587.  
  1588. T2 r125jvm_standard_branch_if_false(T125* C){
  1589. T2 R=0;
  1590. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T125* C1=C;
  1591. r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
  1592. }/*]*/
  1593. /*]*/
  1594. R=r28opcode_ifeq((T28*)(oBC12code_attribute));
  1595. return R;
  1596. }
  1597.  
  1598.  
  1599. T0* r125run_feature_for(T125* C,T0* a1,T0* a2){
  1600. T0* R=NULL;
  1601. T0* _rc=NULL;
  1602. _rc=X52run_class(X109result_type(a1));
  1603. R=r23get_rf(((T23*)_rc),a1,(C)->_feature_name/*12*/,a2);
  1604. return R;
  1605. }
  1606. /*No:CALL_INFIX_AND.target*/
  1607.  
  1608.  
  1609. void r125error(T0* a1,T0* a2){
  1610. r21add_position(a1);
  1611. r21error((T21*)(oBC12eh),a2);
  1612. }
  1613.  
  1614.  
  1615. void r125make(T125* C,T0* a1,T0* a2,T0* a3){
  1616. C->_target=a1;
  1617. {T141*n=malloc(sizeof(*n));
  1618. *n=M141;
  1619. r141make(n,r125operator(),a2);
  1620. C->_feature_name=(T0*)n;
  1621. }
  1622. {T152*n=malloc(sizeof(*n));
  1623. *n=M152;
  1624. /*[IRF3.3make_1*/((((T152*)(n)))->_first_one)=(a3);
  1625. /*]*/
  1626. C->_arguments=(T0*)n;
  1627. }
  1628. }
  1629. /*No:CALL_INFIX_AND.is_current*/
  1630.  
  1631.  
  1632. T2 r125standard_compile_to_jvm_into(T125* C,T0* a1){
  1633. T2 R=0;
  1634. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T125* C1=C;
  1635. r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
  1636. }/*]*/
  1637. /*]*/
  1638. R=X52jvm_convert_to(X52run_type(r125result_type(C)),a1);
  1639. return R;
  1640. }
  1641. /*No:CALL_INFIX_AND.is_void*/
  1642. /*No:CALL_INFIX_AND.us_and*/
  1643.  
  1644.  
  1645. T0* r125operator(void){
  1646. T0* R=NULL;
  1647. R=((T0*)ms14_939);
  1648. return R;
  1649. }
  1650.  
  1651.  
  1652. T2 r125jvm_standard_branch_if_true(T125* C){
  1653. T2 R=0;
  1654. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T125* C1=C;
  1655. r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
  1656. }/*]*/
  1657. /*]*/
  1658. R=r28opcode_ifne((T28*)(oBC12code_attribute));
  1659. return R;
  1660. }
  1661.  
  1662.  
  1663. void r125afd_check(T125* C){
  1664. T0* _running=NULL;
  1665. T0* _rc=NULL;
  1666. _rc=X52run_class(X109result_type((C)->_target/*4*/));
  1667. _running=(((T23*)_rc))->_running/*12*/;
  1668. /*[IF*/
  1669. if((_running)==((void*)(NULL))){
  1670. r21add_position(X109start_position((C)->_target/*4*/));
  1671. /*[IRF3.6append*/{T0* b1=((T0*)ms121_181815);
  1672. r7append((T7*)(oBC21explanation),b1);
  1673. }/*]*/
  1674. /*[IRF3.6append*/{T0* b1=X52run_time_mark((((T23*)_rc))->_current_type/*0*/);
  1675. r7append((T7*)(oBC21explanation),b1);
  1676. }/*]*/
  1677. /*[IRF3.6append*/{T0* b1=((T0*)ms13_20094);
  1678. r7append((T7*)(oBC21explanation),b1);
  1679. }/*]*/
  1680. r21print_as_warning((T21*)(oBC12eh));
  1681. r23set_at_run_time(((T23*)_rc));
  1682. }
  1683.  else if((r340count(((T340*)_running)))>(1)){
  1684. r335update((C)->_target/*4*/,(C)->_run_feature/*16*/);
  1685. }
  1686. /*FI]*/
  1687. X109afd_check((C)->_target/*4*/);
  1688. /*[IF*/
  1689. {/*AT*/r152afd_check((T152*)((C)->_arguments/*8*/));
  1690. }
  1691. /*FI]*/
  1692. }
  1693.  
  1694.  
  1695. T0* r336jvm_root_class(void){
  1696. if(fBC12jvm_root_class==0){
  1697. fBC12jvm_root_class=1;
  1698. {T7*n=malloc(sizeof(*n));
  1699. *n=M7;
  1700. r7make(n,12);
  1701. oBC12jvm_root_class=(T0*)n;
  1702. }
  1703. r7copy(((T7*)oBC12jvm_root_class),((T24*)(oBC12jvm))->_output_name/*0*/);
  1704. r7extend(((T7*)oBC12jvm_root_class),'\57');
  1705. r7append(((T7*)oBC12jvm_root_class),((T0*)ms13_1732));
  1706. }
  1707. return oBC12jvm_root_class;}
  1708.  
  1709.  
  1710. void r336jvm_mapping(T0* a1){
  1711. int _switch=0;
  1712. T0* _fal=NULL;
  1713. T0* _eal=NULL;
  1714. T0* _target=NULL;
  1715. T0* _up_rf=NULL;
  1716. T2 _stack_level=0;
  1717. T2 _idx=0;
  1718. _target=/*X121target*/((T0*)(((T135*)a1))->_target/*4*/);
  1719. _up_rf=X121run_feature(a1);
  1720. _eal=X121arguments(a1);
  1721. X109compile_to_jvm(_target);
  1722. _stack_level=1;
  1723. /*[IF*/
  1724. if((_eal)!=((void*)(NULL))){
  1725. _fal=X27arguments(_up_rf);
  1726. _stack_level=(_stack_level)+(r152compile_to_jvm(((T152*)_eal),_fal));
  1727. }
  1728. /*FI]*/
  1729. /*[IF*/
  1730. if((X27result_type(_up_rf))!=((void*)(NULL))){
  1731. _stack_level=(_stack_level)-(X52jvm_stack_space(X27result_type(_up_rf)));
  1732. }
  1733. /*FI]*/
  1734. _idx=r336idx_methodref(_up_rf);
  1735. r28opcode_invokestatic((T28*)(oBC12code_attribute),_idx,-(_stack_level));
  1736. }
  1737. /*No:SWITCH.fz_jvm_root*/
  1738. T0*oBC336running=NULL;
  1739.  
  1740.  
  1741. T2 r336idx_methodref(T0* a1){
  1742. T2 R=0;
  1743. R=r29idx_methodref3((T29*)(oBC12constant_pool),r336jvm_root_class(),r336name(a1),r336jvm_descriptor(a1));
  1744. return R;
  1745. }
  1746. T0*oBC336c_code=NULL;
  1747.  
  1748.  
  1749. void r336jvm_switch(T0* a1,T0* a2){
  1750. T0* _dynamic_na=NULL;
  1751. T0* _static_na=NULL;
  1752. T0* _ca=NULL;
  1753. T6 _boost=0;
  1754. T0* _dyn_rf=NULL;
  1755. T0* _dyn_rc=NULL;
  1756. T2 _i=0;
  1757. T2 _point=0;
  1758. T2 _space=0;
  1759. _ca=oBC12code_attribute;
  1760. _boost=r76boost((T76*)(oBC12run_control));
  1761. _i=((T340*)(oBC336running))->_upper/*8*/;
  1762. while (!((_i)==(0))) {
  1763. _dyn_rc=r340item((T340*)(oBC336running),_i);
  1764. _dyn_rf=r23dynamic(((T23*)_dyn_rc),a1);
  1765. /*[IF*/
  1766. if(((_i)==(1))&&(_boost)){
  1767. }
  1768. else{
  1769. /*[IRF3.4opcode_aload_0*/r28opcode(((T28*)_ca),42,1);
  1770. /*]*/
  1771. r23opcode_instanceof((T23*)(X27run_class(_dyn_rf)));
  1772. _point=r28opcode_ifeq(((T28*)_ca));
  1773. }
  1774. /*FI]*/
  1775. r24push_switch((T24*)(oBC12jvm),_dyn_rf,a1);
  1776. X27mapping_jvm(_dyn_rf);
  1777. r24pop((T24*)(oBC12jvm));
  1778. /*[IF*/
  1779. if((a2)==((void*)(NULL))){
  1780. /*[IRF3.2opcode_return*//*[IRF3.6add_u1*/{T2 b1=177;
  1781. r48add_last((T48*)(oBC28code),b1);
  1782. }/*]*/
  1783. /*]*/
  1784. }
  1785.  else if(X52is_native_array(a2)){
  1786. _static_na=X52run_type(a2);
  1787. if(NULL!=(_static_na))switch(((T0*)_static_na)->id) {
  1788. case 267: 
  1789. break;
  1790. default:
  1791. _static_na=NULL;
  1792. };_dynamic_na=X52run_type(X27result_type(_dyn_rf));
  1793. if(NULL!=(_dynamic_na))switch(((T0*)_dynamic_na)->id) {
  1794. case 267: 
  1795. break;
  1796. default:
  1797. _dynamic_na=NULL;
  1798. };/*[IF*/
  1799. if((r267run_time_mark(((T267*)_static_na)))==((void*)(r267run_time_mark(((T267*)_dynamic_na))))){
  1800. /*[IRF3.2jvm_return_code*//*[IRF3.2opcode_areturn*//*[IRF3.6add_u1*/{T2 b1=176;
  1801. r48add_last((T48*)(oBC28code),b1);
  1802. }/*]*/
  1803. /*]*/
  1804. /*]*/
  1805. }
  1806.  else if((r267of_references(((T267*)_static_na)))&&(r267of_references(((T267*)_dynamic_na)))){
  1807. /*[IRF3.2jvm_return_code*//*[IRF3.2opcode_areturn*//*[IRF3.6add_u1*/{T2 b1=176;
  1808. r48add_last((T48*)(oBC28code),b1);
  1809. }/*]*/
  1810. /*]*/
  1811. /*]*/
  1812. }
  1813. else{
  1814. /*[IF*/
  1815. if(r76no_check((T76*)(oBC12run_control))){
  1816. r28runtime_error(((T28*)_ca),X27start_position(a1),/*X27current_type*/((T0*)(((T26*)a1))->_current_type/*4*/),((T0*)ms336_534786));
  1817. }
  1818. /*FI]*/
  1819. /*[IRF3.4opcode_pop*/r28opcode(((T28*)_ca),87,-(1));
  1820. /*]*/
  1821. _space=X52jvm_push_default(a2);
  1822. X52jvm_return_code(a2);
  1823. }
  1824. /*FI]*/
  1825. }
  1826. else{
  1827. _space=X52jvm_convert_to(X27result_type(_dyn_rf),a2);
  1828. X52jvm_return_code(a2);
  1829. }
  1830. /*FI]*/
  1831. /*[IF*/
  1832. if(((_i)==(1))&&(_boost)){
  1833. }
  1834. else{
  1835. r28resolve_u2_branch(_point);
  1836. }
  1837. /*FI]*/
  1838. _i=(_i)-(1);
  1839. }
  1840. /*[IF*/
  1841. if(!(_boost)){
  1842. /*[IRF3.4opcode_aload_0*/r28opcode(((T28*)_ca),42,1);
  1843. /*]*/
  1844. r28runtime_error_bad_target(((T28*)_ca),X27start_position(a1),/*X27current_type*/((T0*)(((T26*)a1))->_current_type/*4*/),((T0*)ms336_565005));
  1845. /*[IF*/
  1846. if((a2)==((void*)(NULL))){
  1847. /*[IRF3.2opcode_return*//*[IRF3.6add_u1*/{T2 b1=177;
  1848. r48add_last((T48*)(oBC28code),b1);
  1849. }/*]*/
  1850. /*]*/
  1851. }
  1852. else{
  1853. _space=X52jvm_push_default(a2);
  1854. X52jvm_return_code(a2);
  1855. }
  1856. /*FI]*/
  1857. }
  1858. /*FI]*/
  1859. }
  1860. T0*oBC336tmp_jvmd=NULL;
  1861.  
  1862.  
  1863. void r336jvm_define(T0* a1){
  1864. T0* _rt=NULL;
  1865. r39start((T39*)(oBC12method_info),9,r336name(a1),r336jvm_descriptor(a1));
  1866. r340copy((T340*)(oBC336running),((T23*)(X52run_class(/*X27current_type*/((T0*)(((T26*)a1))->_current_type/*4*/))))->_running/*12*/);
  1867. _rt=X27result_type(a1);
  1868. /*[IF*/
  1869. if((_rt)!=((void*)(NULL))){
  1870. _rt=X52run_type(_rt);
  1871. }
  1872. /*FI]*/
  1873. r336jvm_switch(a1,_rt);
  1874. r39finish((T39*)(oBC12method_info));
  1875. }
  1876.  
  1877.  
  1878. T0* r336name(T0* a1){
  1879. T0* R=NULL;
  1880. /*[IRF3.3clear*/((((T7*)((T7*)(oBC336c_code))))->_count)=(0);
  1881. /*]*/
  1882. r7extend((T7*)(oBC336c_code),'X');
  1883. r2append_in(X52id(/*X27current_type*/((T0*)(((T26*)a1))->_current_type/*4*/)),oBC336c_code);
  1884. r7append((T7*)(oBC336c_code),X50to_key(/*X27name*/((T0*)(((T26*)a1))->_name/*16*/)));
  1885. R=oBC336c_code;
  1886. return R;
  1887. }
  1888. /*No:SWITCH.fz_19*/
  1889.  
  1890.  
  1891. T0* r336jvm_root_descriptor(void){
  1892. if(fBC12jvm_root_descriptor==0){
  1893. fBC12jvm_root_descriptor=1;
  1894. {T7*n=malloc(sizeof(*n));
  1895. *n=M7;
  1896. r7make(n,12);
  1897. oBC12jvm_root_descriptor=(T0*)n;
  1898. }
  1899. r7extend(((T7*)oBC12jvm_root_descriptor),'L');
  1900. r7append(((T7*)oBC12jvm_root_descriptor),r336jvm_root_class());
  1901. r7extend(((T7*)oBC12jvm_root_descriptor),'\73');
  1902. }
  1903. return oBC12jvm_root_descriptor;}
  1904.  
  1905.  
  1906. T0* r336jvm_descriptor(T0* a1){
  1907. T0* R=NULL;
  1908. T0* _rt=NULL;
  1909. T0* _arguments=NULL;
  1910. _arguments=X27arguments(a1);
  1911. /*[IRF3.3clear*/((((T7*)((T7*)(oBC336tmp_jvmd))))->_count)=(0);
  1912. /*]*/
  1913. r7extend((T7*)(oBC336tmp_jvmd),'\50');
  1914. r7append((T7*)(oBC336tmp_jvmd),r336jvm_root_descriptor());
  1915. /*[IF*/
  1916. if((_arguments)!=((void*)(NULL))){
  1917. r191jvm_descriptor_in(((T191*)_arguments),oBC336tmp_jvmd);
  1918. }
  1919. /*FI]*/
  1920. _rt=X27result_type(a1);
  1921. /*[IF*/
  1922. if((_rt)==((void*)(NULL))){
  1923. r7append((T7*)(oBC336tmp_jvmd),((T0*)ms13_260));
  1924. }
  1925. else{
  1926. _rt=X52run_type(_rt);
  1927. r7extend((T7*)(oBC336tmp_jvmd),'\51');
  1928. /*[IF*/
  1929. if(X52is_reference(_rt)){
  1930. r7append((T7*)(oBC336tmp_jvmd),r336jvm_root_descriptor());
  1931. }
  1932. else{
  1933. X52jvm_descriptor_in(_rt,oBC336tmp_jvmd);
  1934. }
  1935. /*FI]*/
  1936. }
  1937. /*FI]*/
  1938. R=oBC336tmp_jvmd;
  1939. return R;
  1940. }
  1941.  
  1942.